function PDE = process_pde_2d(exmple_index)
switch exmple_index
    case 1
        a = 1;
        PDE.index = exmple_index;
        PDE.nu = a;
        PDE.u1 = @(x,y) x.^2 .* y.^2 + exp(-y);
        PDE.u1dx = @(x,y) 2*x.*y.^2;
        PDE.u1dy = @(x,y) 2*y.*x.^2 - exp(-y);
        PDE.u2 = @(x,y) -2/3*x.*y.^3 + 2 - pi*sin(pi*x);
        PDE.u2dx = @(x,y) - pi^2*cos(pi*x) - (2*y.^3)/3;
        PDE.u2dy = @(x,y) -2*x.*y.^2;
        PDE.p = @(x,y) -(2-pi*sin(pi*x)).*cos(2*pi*y);
        PDE.pdx = @(x,y) pi^2*cos(pi*x).*cos(2*pi*y);
        PDE.pdy = @(x,y) -2*pi*sin(2*pi*y).*(pi*sin(pi*x) - 2);
        PDE.f1 = @(x,y) -2*a*x.^2 - 2*a*y.^2 - a*exp(-y) + pi^2*cos(pi*x).*cos(2*pi*y)...
            +2*x.*y.^2.*(x.^2.*y.^2 + exp(-y))...
            +(-2*x.*y.^3/3 + 2 - pi*sin(pi*x)).*(2*x.^2.*y - exp(-y));
        PDE.f2 = @(x,y) 4*a*x.*y - a*pi^3*sin(pi*x) + 2*pi*(2-pi*sin(pi*x)).*sin(2*pi*y)...
            +(x.^2.*y.^2 + exp(-y)).*(-2*y.^3/3 - pi^2*cos(pi*x))...
            +(-2*x.*y.^3/3 + 2 - pi*sin(pi*x)).*(-2*x.*y.^2);
        PDE.domain = [0, 1, -0.25, 0];
        PDE.bdary = [0, 0, 0, 0];
    otherwise
        error("Invalid PDE exmple_index");
end
fprintf("PDE example: %d (有解析解的问题)\n", exmple_index);
fprintf("PDE domain: xmin,xmax,ymin,ymax\n");
disp(PDE.domain);
fprintf("PDE boundary: bottom,right,top,left (0=Dirichlet,1=Neumann,2=Robin)\n");
disp(PDE.bdary);
end